home *** CD-ROM | disk | FTP | other *** search
/ Freelog 117 / FreelogNo117-OctobreNovembre2013.iso / Programmation / jedit / jedit5.1.0install.exe / {app} / macros / Files / Toggle_ReadOnly.bsh < prev   
Text File  |  2013-07-28  |  3KB  |  90 lines

  1. /*
  2.  * Toggle_ReadOnly.bsh - a BeanShell macro for jEdit that toggles 
  3.  * a local file's read-only flag.
  4.  *
  5.  * Copyright (C) 2002,2003 Ollie Rutherfurd, oliver@rutherfurd.net
  6.  *
  7.  * This program is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU General Public License
  9.  * as published by the Free Software Foundation; either version 2
  10.  * of the License, or any later version.
  11.  *
  12.  * This program is distributed in the hope that it will be useful,
  13.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  * GNU General Public License for more details.
  16.  *
  17.  * You should have received a copy of the GNU General Public License
  18.  * along with the jEdit program; if not, write to the Free Software
  19.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20.  *
  21.  * $Id: Toggle_ReadOnly.bsh 21353 2012-03-14 09:46:51Z jojaba_67 $
  22.  */
  23.  
  24. // Localization
  25. final static String OnlyLocalFilesError = jEdit.getProperty("macro.rs.ToggleReadOnly.OnlyLocalFiles.error", "This macro only works on local files.");
  26. final static String OnlyWindowsUnixMacosError = jEdit.getProperty("macro.rs.ToggleReadOnly.OnlyWindowsUnixMacos.error", "This macro only works on Windows, Unix, & MacOS X.");
  27.     
  28. //Process
  29. CmdThread(cmd, view)
  30. {
  31.     run()
  32.     {
  33.         process = Runtime.getRuntime().exec(cmd);
  34.         process.waitFor();
  35.         view.getBuffer().checkFileStatus(view);
  36.     }
  37.     return this;
  38. }
  39.  
  40.  
  41. void ToggleReadOnly(view)
  42. {
  43.     buffer = view.getBuffer();
  44.  
  45.     // must be using file vfs
  46.     if(!buffer.getVFS().getName().equals("file"))
  47.     {
  48.         Macros.error(view, OnlyLocalFilesError);
  49.         return;
  50.     }
  51.  
  52.     // is read-only be turned on or off
  53.     readonly = buffer.isReadOnly();
  54.  
  55.     if (OperatingSystem.isUnix() || OperatingSystem.isMacOS())
  56.     {
  57.         cmd = "chmod " + (readonly ? "+" : "-") + "w " 
  58.             + buffer.getPath();
  59.     }
  60.     else if(OperatingSystem.isWindows())
  61.     {
  62.         cmd = "ATTRIB.EXE " + (readonly ? "-" : "+") + "R \"" 
  63.             + buffer.getPath() + "\"";
  64.     }
  65.     else
  66.     {
  67.         Macros.error(view, OnlyWindowsUnixMacosError);
  68.         return;
  69.     }
  70.  
  71.     toggle = CmdThread(cmd, view);
  72.     SwingUtilities.invokeLater(toggle);
  73. }
  74.  
  75. ToggleReadOnly(view);
  76.  
  77. /*
  78.     Macro index data (in DocBook format)
  79.  
  80. <listitem>
  81.     <para><filename>Toggle_ReadOnly.bsh</filename></para>
  82.     <abstract><para>
  83.     Toggles a local file's read-only flag. Uses platform-specific commands, so it only works on Windows, Unix and MacOS X.
  84.     </para></abstract>
  85. </listitem>
  86.  
  87. */
  88.  
  89. // :indentSize=4:lineSeparator=\n:noTabs=false:tabSize=4:folding=explicit:collapseFolds=1:
  90.